[C] Decompositor de números em fatores primos
Publicado por Enzo de Brito Ferber 27/06/2007
[ Hits: 10.401 ]
Homepage: http://www.maximasonorizacao.com.br
Como o nome já diz, um programa escrito em C, que decompõe um número qualquer em fatores primos e exibe estes números para o usuário.
/* * Programa: Decompositor de numeros * Arquivo : decom_primes.c * Autor : Enzo Ferber 'Slackware_10' */ #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 int *lista_primos(int size){ int prime, i=0, a, b; int *list = (int*)malloc(size*sizeof(int)); if(!list){ printf("[-] Erro ao alocar memoria.\n"); printf("[-] Abortando...\n"); exit(0); } for(a=2;a<size;a++){ prime = FALSE; for(b=1;b<=a;b++){ if(b == a) prime = TRUE; if(((a%b)==0) && (b != 1)) break; } if(prime) list[i] = a; if(prime) i += 1; } list[i] = 0x0; return list; } int *fatores_primos(int num){ int *lista = lista_primos(num+1); int *fatores = (int*)malloc(num*sizeof(int)); register int i; int div_atual, fat_atual, list_ref, ref; ref = num; fat_atual = 0; list_ref = 0; div_atual = lista[list_ref]; for(i=0; i<num; i++){ if(ref == 1){ fatores[fat_atual] = 1; break; } if((ref % div_atual) == 0){ ref = ref / div_atual; fatores[fat_atual] = div_atual; fat_atual++; } if((ref % div_atual) != 0) div_atual = lista[++list_ref]; } free(lista); fatores[fat_atual+1] = 0x0; return fatores; } int main(int argc, char *argv[]){ int *list; if(argc != 2){ printf("[-] Uso: %s <numero_a_fatorar>\n", argv[0]); printf("[-] Abortando...\n"); exit(0); } list = fatores_primos(atoi(argv[1])); while(*list) printf("%d\n", *list++); return 0; }
Nenhum coment�rio foi encontrado.
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
O 1º artigo a gente nunca esquece (1)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (9)
Problema ao atualizar archlinux nvidia [RESOLVIDO] (3)